package com.dingding.service.user.facade;

import javax.annotation.Resource;

import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import com.dingding.common.core.beans.UserLogin;
import com.dingding.facade.user.service.IUserLoginFacade;
import com.dingding.service.user.core.dao.IUserLoginDao;

/**
 * @ClassName: UserInfoFacade
 * @Description:用户信息操作接口
 * @author cw
 * @date 2016年4月12日 下午4:13:34
 */
@Component("userLoginFacade")
public class UserLoginFacadeImpl implements IUserLoginFacade {
	
	private Logger log = Logger.getLogger(this.getClass());
	
	@Resource(name = "userLoginDao")
	public IUserLoginDao userLoginDao;

	/**
	 * 
	 * @Title: getUserLoginByProperty 
	 * @Description: 根据某一属性查询用户登录表相关信息
	 * @param property 属性
	 * @param value 属性值
	 * @return  UserLogin 查询到的用户登录信息
	 * @author 
	 * 
	 */
	@Override
	public UserLogin getUserLoginByTelPhone(String telPhone) {
		return this.userLoginDao.getUserLoginByProperty("userName", telPhone);
	}

	/**
	 * 
	 * @Title: addCancelNumber 
	 * @Description:  给主动取消的用户增加取消次数
	 * @param userId 用户Id
	 * @author YHQ 
	 * @return boolean    返回类型
	 * 
	 */
	@Override
	public boolean addCancelNumber(String userId) {
		
		return userLoginDao.addCancelNumber(userId);
	}
	
	/**
	 * 
	 * @Title: addPushNumber 
	 * @Description:  给用户增加推送次数
	 * @param userId 用户Id
	 * @author YHQ 
	 * @return boolean    返回类型
	 * 
	 */
	@Override
	public boolean addPushNumber(String userId) {
		
		return userLoginDao.addPushNumber(userId);
	}
	
	/**
	 * 
	 * @Title: addCancelNumber 
	 * @Description:  确认到达，给双方增加完成订单次数
	 * @param driverId 司机Id
	 * @param passengerId 乘客Id
	 * @author YHQ 
	 * @return boolean    返回类型
	 * 
	 */
	@Override
	public boolean addConfirmArrival(String driverId,String passengerId,String ucId) {
		
		return userLoginDao.addConfirmArrival(driverId, passengerId,ucId);
	}

	/**
	 * 
	 * @Title: getUserLoginInfo 
	 * @Description: 根据用户Id获取用户登录信息
	 * @param userId 用户Id
	 * @author YHQ 
	 * @return UserLogin    返回类型
	 * 
	 */
	@Override
	@Transactional(propagation=Propagation.REQUIRED)
	public UserLogin getUserLoginInfo(String userId) {
		
		try {
			return userLoginDao.getById(userId);
		} catch (Exception e) {
			log.error("根据用户Id获取用户登录信息时出现异常  类："+this.getClass()+" getUserLoginInfo()", e);
		}
		return null;
	}	
	
	
}
